package com.dyz.leetcode;

import java.util.Arrays;

public class SortColors75 {
    //使用库的函数
    public void sortColors(int[] nums) {
        //使用函数排序
        Arrays.sort(nums);
    }
    public void sortColors1(int [] nums){
        //插入排序
        for(int i=0; i<nums.length;i++){
            for(int j=i; (j>0 && nums[j-1]>nums[j]); j--){
                int temp = nums[j];
                nums[j] = nums[j-1];
                nums[j-1] = temp;
            }
        }
    }
    //双指针
    public void sortColors2(int[] nums) {

        int left = 0;
        int right = nums.length-1;
        for (int i=0; i<=right;i++){
            if(nums[i]==0){
                swap(i, left++, nums);
            }else if(nums[i]==2){
                swap(right--, i--, nums);
            }
        }
    }
    private void swap(int i, int j, int[] nums){
        int temp = nums[i];
        nums[i] = nums[j];
        nums[j] = temp;
    }
}
